<?php
	
	require_once 'View/LoginView.php';
	require_once 'Model/LoginHandler.php';
	require_once 'View/FileUploadView.php';


	class LoginController{
		
		private $m_loginHandler;
		private $m_loginView;
		private $xhtml;
			
		function __construct(LoginView $lw, LoginHandler $lh){
			$this->m_loginView = $lw;
			$this->m_loginHandler = $lh;
			$this->xhtml = "";
		}
		
		/**
		 * 
		 *
		 * @TODO Hämta felmeddelanden från vyn
		 */
		public function DoControl(){
								
			// Om användaren redan är inloggad
			if ($this->m_loginHandler->IsLoggedIn() == TRUE){
				// Om användaren klickat på loggaut-knappen..
				if ($this->m_loginView->TriedToLogout() == TRUE) {
					//..logga ut och döda kakan
					$this->m_loginHandler->DoLogout();
					$this->m_loginView->KillCookies();
				}
			}
						
			// Om användaren inte är inloggad
			if ($this->m_loginHandler->IsLoggedIn() == FALSE) {
				// Om användaren klickat på loggain-knappen..
				if ($this->m_loginView->TriedToLogin() == TRUE) {
					// Försök att logga in med inmatad data
					// Slänga in User-objekt istället för strängar??
					$this->m_loginHandler->DoLogin($this->m_loginView->GetUserName(), $this->m_loginView->GetPassword());
						// Är användaren inloggad nu? Ge feedback
						if($this->m_loginHandler->IsLoggedIn() == TRUE){
							// Klickade användaren i "kom ihåg mig?"
							if($this->m_loginView->IsRememberChecked() == TRUE){
								$this->m_loginView->SetCookie();
							}
						} else {
							$this->xhtml .= $this->m_loginView->WrongInfoPassMessage();
						}												
				// Om användaren inte är inloggad men har rätt cookies, loggas användaren in med dem.						
				}if ($this->m_loginView->IsCookiesSet() == TRUE) {						
						$this->m_loginHandler->DoLogin($this->m_loginView->ReadUserCookie(), $this->m_loginView->ReadPassCookie());
			
					}
				}

			// Är användaren nu inloggad? 
			if ($this->m_loginHandler->IsLoggedIn() == TRUE) {
				//..visa utloggningslänk.
				$this->xhtml .= $this->m_loginView->LoggedInMessage();
				$this->xhtml .= $this->m_loginView->DoLogoutBox();
			}
			
			// Är användaren utloggad?
			if ($this->m_loginHandler->IsLoggedIn() == FALSE) {
				//..visa inloggningsrutan
				$this->xhtml .= $this->m_loginView->LoggedOutMessage();
				$this->xhtml .= $this->m_loginView->DoLoginBox();
			}
			
			
			// Skapar en page och returnerar den till mastercontrollern
			$page = new Page();
			$page->body = $this->xhtml;
			
			return $page;
		}
	}

	
	